/*
 * @lc app=leetcode.cn id=LCR 174 lang=golang
 * @lcpr version=30118
 *
 * [LCR 174] 寻找二叉搜索树中的目标节点
 */

// @lcpr-template-start

// @lcpr-template-end
// @lc code=start
/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func findTargetNode(root *TreeNode, cnt int) int {
	nums := []int{}
	dfs(root, &nums, cnt)
	return nums[cnt-1]
}

func dfs(root *TreeNode, nums *[]int, cnt int) {
	if root == nil || cnt <= len(*nums) {
		return
	}
	// fmt.Println(*nums)
	dfs(root.Right, nums, cnt)
	*nums = append(*nums, root.Val)
	dfs(root.Left, nums, cnt)
}

// @lc code=end

/*
// @lcpr case=start
// [7, 3, 9, 1, 5]\n27/ \3   9/ \1   5\n
// @lcpr case=end

// @lcpr case=start
// [10, 5, 15, 2, 7, null, 20, 1, null, 6, 8]\n410/ \5   15/ \    \2   7    20/   / \ 1   6   8\n
// @lcpr case=end

*/

